package com.waitingresult.common.base.domain.bo;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import java.io.Serializable;


/**
 * All right reserved,Designed By WangShuai
 *
 * @author : WangShuai
 * @version : V1.0
 * @ClassName : BaseBo
 * @Description : 请求入参的基类.
 * @date : 2021/9/10 14:00
 */
@Data
public class BaseBo<T> implements Serializable {

    /**
     * 创建时校验分组
     */
    public interface Create {
    }

    /**
     * 查询时校验分组
     */
    public interface Query {
    }

    /**
     * 更新时校验分组
     */
    public interface Edit {
    }

    /**
     * 删除时校验分组
     */
    public interface Delete {
    }

    /*--------业务字段--------------------*/
    /**
     * 主键不能为空
     */
    @ApiModelProperty("ID")
    @Null(groups = Create.class, message = "ID必须为空")
    @NotNull(groups = Edit.class, message = "ID不能为空")
    private Long id;

    /**
     * 删除IDs
     */
    @NotNull(groups = Delete.class, message = "IDS不能为空")
    @ApiModelProperty("删除时使用的,主键集合,为字符串, 两个ID之间以(,)英文逗号隔开")
    private String ids;

    /*-----------分页字段------------*/
    /**
     * 分页
     */
    @ApiModelProperty("分页大小")
    private Page page;
}
